using System;
using MagicApp.Data.Enums;



namespace MagicApp.Data
{
    /// <summary>
    /// Description of Card.
    /// </summary>
    public abstract class Card : ICard
    {
        public Card()
        {
        }

        public Card(int cardID, string cardName, string cardDescription,
                    Series series, CardType cardType, CardColor color, CardRarity rarity, Image cardImage)
        {
            CardID = cardID;
            CardName = cardName;
            CardDescription = cardDescription;
            Series = series;
            CardType = cardType;
            Color = color;
            Rarity = rarity;
            CardImage = cardImage;
        }

        private Image _cardImage;
        public Image CardImage
        {
            get { return _cardImage; }
            set { _cardImage = value; }
        }
        private CardRarity _rarity;
        public CardRarity Rarity
        {
            get { return this._rarity; }
            set { this._rarity = value; }
        }
        private CardColor _color;
        public CardColor Color
        {
            get { return _color; }
            set { this._color = value; }
        }
        private int _cardID;

        public int CardID
        {
            get { return _cardID; }
            set { this._cardID = value; }
        }

        private string _cardName;

        public string CardName
        {
            get { return _cardName; }
            set { this._cardName = value; }
        }

        private string _cardDescription;

        public string CardDescription
        {
            get { return _cardDescription; }
            set { this._cardDescription = value; }
        }

        private CardType _cardType;

        public CardType CardType
        {
            get { return _cardType; }
            set { this._cardType = value; }
        }

        private string _deckName;
        public string DeckName 
        {
            get { return _deckName; }
            set { _deckName = value; }
        }

        private Series _series;

        public Series Series
        {
            get { return _series; }
            set { this._series = value; }
        }

        public Image Display()
        {
            return this.CardImage;
        }
    }
}
